- 2019年的CS50: 只有英文字幕
- 導讀哈佛大學程式課程: 胡立的中文導讀
注意: 中文導讀不確定是幾年的, 有可能會有些許對不上或順序不對, 但最後重點都會講到
系列文章:
database
我們紀錄使用者的資訊可以用 cookie or csv 檔 text 檔之類的, 但這很沒有安全性, 所以可以記錄在 database 裡面
data type
存的資料有很多種 type, 每一種佔用的記憶體不同, 例如 integer 和 bigint 都是存數字, 甚至 bigint 因為用的記憶體空間較大, 可以存遠比 integer 更大的數字, 但就是效能比較不好
現在的 sql 也都很聰明, 例如字串就會依據輸入的字元多寡而去決定該用多少記憶體, 但 default 值有上限, 除非自己定義更多的空間, 例如在 sqlite string 預設最多 255 個字元, 可以設更少或更多, 取決用途
最後影響效能的還有 type 存在記憶體的方式不一樣, 例如 varchar 就會比 char 慢
注意
要注意 race condition, 善用 lock 讓當前的 table 暫時不能給別的使用者更新
要注意 database injection, database 會盲目地執行使用者輸入的字串, 所以程式碼要執行的 sql 指令最好是動態產生有做過一些處理的
課程上還有介紹蠻多基礎的東西, 但自己只記錄一些自己還不知道或者比較重要的